using System;
using System.Collections.Generic;
using System.Text;

using XNAF = Microsoft.Xna.Framework;

using XGAE.Framework.Extensions;

namespace XGAE.Backend
{
    public interface IMotion
    {
        /// <summary>
        /// Move in a given direction relatively to current direction.
        /// </summary>
        /// <param name="direction"></param>
        void Step(XNAF.Vector3 direction);

        /// <summary>
        /// Turn the view in a given direction relatively to the current angles.
        /// </summary>
        /// <param name="angles"></param>
        void Turn(Angles angles);

        /// <summary>
        /// Jump upwards, combine with move to leap in a specific direction.
        /// </summary>
        void Jump();

        /// <summary>
        /// Duck down, use move to crawl in a specific direction.
        /// </summary>
        void Duck();
    }
}